package com.fjnu.service;

import com.fjnu.dto.UserConditionDto;
import com.fjnu.entity.User;
import com.fjnu.utils.PageResult;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户对象
     */
    User queryByName(String username);
    
    /**
     * 用户注册功能
     * @param user 用户对象
     * @return 0 表示注册失败，1 表示注册成功
     */
    int register(User user);
    
    /**
     * 根据用户的查询条件，查询用户列表的分页结果
     * @param userCondition 用户查询条件
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页结果
     */
    PageResult queryUsers(UserConditionDto userCondition, Integer pageNum, Integer pageSize);
    
    /**
     * 根据用户 id 分配角色列表
     * @param userId 用户ID
     * @param roleIds 角色ID列表
     */
    void addAssignRole(String userId, List<Integer> roleIds);
    
    /**
     * 修改用户密码
     * @param userId 用户ID
     * @param newPassword 新密码
     * @return 1 表示修改成功，0 表示修改失败
     */
    int changePassword(String userId, String newPassword);
}